////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2017-2018 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// THIS IS AUTO-GENERATED CODE.  PLEASE DO NOT EDIT (File bug reports against tools).
///
/// Auto-generated by: ParameterParser V1.1.4
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @file  tf_1_0_0.h
/// @brief Auto-generated Chromatix parameter file
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#ifndef TF_1_0_0_H
#define TF_1_0_0_H

#include "parametermodule.h"
#include "parameterfilesymboltable.h"
#include "parametertypes.h"
#include "ispglobalelements.h"

#define TF_1_0_0_NAMESPACE_BEGIN namespace tf_1_0_0 {
#define TF_1_0_0_NAMESPACE_END }

TF_1_0_0_NAMESPACE_BEGIN

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_pass_reserve_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_pass_reserve_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// pass_trigger
    ///
    /// Default Value: PASS_FULL,PASS_DC4,PASS_DC16,PASS_DC64
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pass pass_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// pass_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct pass_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// blending_mode
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   0 = regular blending. 1 = copy IMG to TFO. 2 = copy ANRO to TFO. 3 = copy MCTFP to TFO. 4 = use blending
        ///                with constant factor between ANRO and MCTFP (this mode can not be used only when both inputs are
        ///                available to TF).
        /// Default Value: 0
        /// Range:         [0, 4]
        /// Bit Depth:     3u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 blending_mode;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// is_anr_strength_blender_mode
        ///
        /// Tuning Level:  must_tune
        /// Description:   Whether to use TF unit as a strength blender for ANR. When 1 or 2 the TF is used as ANR post-processing
        ///                block and can not be used for temporal noise reduction. Usually used in still processing or MFNR Post. 0
        ///                - use regular mode for Temporal Filtering. 1 - use as strength blender for ANR according to the
        ///                anr_final_blender parameters. (Basic mode). 2 - use as strength blender for ANR according to regular TF
        ///                parameters and not based on anr_final_blender parameters. (Advanced mode) (Example: Use this mode if one
        ///                wants to blend as a function of brighness or as a function of LNR).
        /// Default Value: 0
        /// Range:         [0, 2]
        /// Bit Depth:     2u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 is_anr_strength_blender_mode;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// disable_luma_ghost_detection
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether ghost detection takes Luma into account. When both disable_luma_ghost_detection and
        ///                disable_chroma_ghost_detection are 1, ghost detection is bypassed. (setting filter strength either to
        ///                indication values or to zeros -- depending on indications_affect_fs_decision_also_directly flag).
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 disable_luma_ghost_detection;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// disable_chroma_ghost_detection
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether ghost detection takes Chroma into account. When both disable_luma_ghost_detection and
        ///                disable_chroma_ghost_detection are 1, ghost detection is bypassed. (setting filter strength either to
        ///                indication values or to zeros -- depending on indications_affect_fs_decision_also_directly flag).
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 disable_chroma_ghost_detection;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// enable_lnr
        ///
        /// Tuning Level:  often_tune
        /// Description:   Whether to enable radial update of noise thresholds (due to lens roll-off).
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 enable_lnr;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_y_uv_limit
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Limit for chroma values that affect Luma noise threshold.
        /// Default Value: 511
        /// Range:         [0, 511]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 noise_params_y_uv_limit;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cb_uv_limit
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Limit for chroma values that affect Cb noise threshold.
        /// Default Value: 511
        /// Range:         [0, 511]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 noise_params_cb_uv_limit;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cr_uv_limit
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Limit for chroma values that affect Cr noise threshold.
        /// Default Value: 511
        /// Range:         [0, 511]
        /// Bit Depth:     9u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 noise_params_cr_uv_limit;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// use_anr_for_decisions_y
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether to use spatially filtered Luma for ghost detection decisions instead of unfiltered Luma.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 use_anr_for_decisions_y;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// use_anr_for_decisions_c
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether to use spatially filtered Chroma for ghost detection decisions instead of unfiltered Chroma.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 use_anr_for_decisions_c;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// enable_noise_est_by_luma
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Enables dependence of noise thresholds on luma. (0 for power-saving mode: all noise thresholds will
        ///                depend only on chroma; if enable_noise_est_by_chroma is also 0 -- noise thresholds will be constant).
        ///                CONSTRAINT: When disable_luma_ghost_detection is 1, enable_noise_est_by_luma should be 0.
        /// Default Value: 1
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 enable_noise_est_by_luma;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// enable_noise_est_by_chroma
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Enables dependence of noise thresholds on chroma. (0 for power-saving mode: noise thresholds will depend
        ///                only on luma; if enable_noise_est_by_luma is also 0 -- noise thresholds will be constant). CONSTRAINT:
        ///                When disable_chroma_ghost_detection is 1, enable_noise_est_by_chroma should be 0.
        /// Default Value: 1
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 enable_noise_est_by_chroma;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// padding_by_reflection_override
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   0 = Flow (i.e. SW) decisions may override chromatix value of padding_by_reflection, 1 = Chromatix value
        ///                of padding_by_reflection is used irrespective of flow decisions.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 padding_by_reflection_override;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// padding_by_reflection
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether the padding in Luma anti-aliasing and SAD filters, is by reflection. When this flag is 0 (this is
        ///                the default value) the padding is done by duplication of the boundary pixel. When this flag is 1 the
        ///                padding is done by taking the value at a coordinate mirrored relative to the boundary.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 padding_by_reflection;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// morph_erode_en
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Enable morphological erode filter of indications (located before morphological dilate filter).
        /// Default Value: 1
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 morph_erode_en;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// morph_dilate_en
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Enable morphological dilate filter of indications (located after morphological erode filter).
        /// Default Value: 1
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 morph_dilate_en;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// smear_inputs_for_decisions
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Determines whether to perform anti-aliasing (low pass) filter on Luma of the difference image prior to
        ///                using it in ghost detection. When this flag is 1, blending sub-module will be forced to bypass one of
        ///                inputs to TFO. (thus, anti-aliasing should be enabled only in low resolutions).
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 smear_inputs_for_decisions;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// indications_premultiply_factor
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Multiplicative factor for decreasing the indication values (valid factor range is [0-16]). Value of 16
        ///                means no change to indications.
        /// Default Value: 16
        /// Range:         [0, 16]
        /// Bit Depth:     5u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 indications_premultiply_factor;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// invert_temporal_blending_weights
        ///
        /// Tuning Level:  rarely_tune
        /// Description:   Whether to take 1-a instead of a for a1 and a4 blending weights.
        /// Default Value: 0
        /// Range:         [0, 1]
        /// Bit Depth:     1u
        /// Conversion:    No Conversion needed
        /// Notes:         Hide in GUI ! Constant (per pass): no dynamic configuration even when control variable change.
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 invert_temporal_blending_weights;
    } pass_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_tf10_reserveType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_tf10_reserveType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_tf10_pass_reserve_data - Array
    /// Length:        4
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    mod_tf10_pass_reserve_dataType mod_tf10_pass_reserve_data[4];
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// tf10_rgn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct tf10_rgn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// en
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Enable of TF module (including upscaler) per pass. When 0, ANR image is forwarded to TF output.
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear Ceil Interpolation: Do Linear Interpolation and then Ceil.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       en;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_y_ytb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of luma to Y noise threshold, sampled at 17 points.
    /// Default Value: 100
    /// Range:         [0, 4095]
    /// Bit Depth:     12u, Q2
    /// Length:        17
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_y_ytb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_y_ytb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 100
        /// Length:        17
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_y_ytb[17];
    } noise_params_y_ytb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_y_ctb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of chroma to Y noise threshold, specified for 8 extreme points.
    /// Default Value: 0
    /// Range:         [-1024, 1023]
    /// Bit Depth:     11s
    /// Length:        8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_y_ctb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_y_ctb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_y_ctb[8];
    } noise_params_y_ctb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_y_top_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Upper limit of Luma noise threshold.
    /// Default Value: 100
    /// Range:         [0, 4095]
    /// Bit Depth:     12u, Q2
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_y_top_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_y_bot_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Lower limit of luma noise threshold.
    /// Default Value: 100
    /// Range:         [0, 4095]
    /// Bit Depth:     12u, Q2
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_y_bot_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cb_ytb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of luma to Cb noise threshold, sampled at 17 points.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Length:        17
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_cb_ytb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cb_ytb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 30
        /// Length:        17
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_cb_ytb[17];
    } noise_params_cb_ytb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cb_ctb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of chroma to Cb noise threshold, specified for 8 extreme points.
    /// Default Value: 0
    /// Range:         [-1024, 1023]
    /// Bit Depth:     11s
    /// Length:        8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_cb_ctb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cb_ctb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_cb_ctb[8];
    } noise_params_cb_ctb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cb_top_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Upper limit of Cb noise threshold.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_cb_top_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cb_bot_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Lower limit of Cb noise threshold.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_cb_bot_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cr_ytb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of luma to Cr noise threshold, sampled at 17 points.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Length:        17
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_cr_ytb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cr_ytb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 30
        /// Length:        17
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_cr_ytb[17];
    } noise_params_cr_ytb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cr_ctb_tab
    ///
    /// Tuning Level:  must_tune
    /// Description:   Contribution of chroma to Cr noise threshold, specified for 8 extreme points.
    /// Default Value: 0
    /// Range:         [-1024, 1023]
    /// Bit Depth:     11s
    /// Length:        8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct noise_params_cr_ctb_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// noise_params_cr_ctb - Array
        ///
        /// Tuning Level:  must_tune
        /// Default Value: 0
        /// Length:        8
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT noise_params_cr_ctb[8];
    } noise_params_cr_ctb_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cr_top_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Upper limit of Cr noise threshold.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_cr_top_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// noise_params_cr_bot_lim
    ///
    /// Tuning Level:  often_tune
    /// Description:   Lower limit of Cr noise threshold.
    /// Default Value: 30
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       noise_params_cr_bot_lim;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_max_y
    ///
    /// Tuning Level:  often_tune
    /// Description:   Upper limit for a2 blending factor calculation (used in case FS=0) in Luma.
    /// Default Value: 250
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_max_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_min_y
    ///
    /// Tuning Level:  often_tune
    /// Description:   Lower limit for a2 blending factor calculation in Luma (this value may never be reached if a2_slope_y is
    ///                too small).
    /// Default Value: 25
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_min_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_slope_y
    ///
    /// Tuning Level:  often_tune
    /// Description:   a2 slope as a function of FS (a2 starts from a2_max_y at FS=0 and goes down with slope a2_slope_y as FS
    ///                increases). Used for Luma.
    /// Default Value: 114
    /// Range:         [0, 255]
    /// Bit Depth:     8u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_slope_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_max_c
    ///
    /// Tuning Level:  often_tune
    /// Description:   Upper limit for a2 blending factor calculation (used in case FS=0) in Chroma.
    /// Default Value: 250
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_max_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_min_c
    ///
    /// Tuning Level:  often_tune
    /// Description:   Lower limit for a2 blending factor calculation in Chroma (this value may never be reached if a2_slope_c
    ///                is too small).
    /// Default Value: 180
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_min_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a2_slope_c
    ///
    /// Tuning Level:  often_tune
    /// Description:   a2 slope as a function of FS (a2 starts from a2_max_c at FS=0 and goes down with slope a2_slope_c as FS
    ///                increases). Used for Chroma.
    /// Default Value: 36
    /// Range:         [0, 255]
    /// Bit Depth:     8u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a2_slope_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// is_same_blending_for_all_frequencies
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Forces same blending factor both for low and for high frequencies during blending.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear Floor Interpolation: Do Linear Interpolation and then Floor.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       is_same_blending_for_all_frequencies;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_to_a1_map_y_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Sparse mapping between FS values [0:8:64] and a1 blending factor for Luma.
    /// Default Value: 0,24,49,73,98,123,147,172,197
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_to_a1_map_y_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_to_a1_map_y - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,24,49,73,98,123,147,172,197
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_to_a1_map_y[9];
    } fs_to_a1_map_y_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_to_a1_map_c_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Sparse mapping between FS values [0:8:64] and a1 blending factor for Chroma.
    /// Default Value: 0,24,49,73,98,123,147,172,197
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_to_a1_map_c_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_to_a1_map_c - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,24,49,73,98,123,147,172,197
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_to_a1_map_c[9];
    } fs_to_a1_map_c_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_to_a4_map_y_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Sparse mapping between FS values [0:8:64] and a4 blending factor for Luma.
    /// Default Value: 0,24,49,73,98,123,147,172,197
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_to_a4_map_y_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_to_a4_map_y - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,24,49,73,98,123,147,172,197
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_to_a4_map_y[9];
    } fs_to_a4_map_y_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_to_a4_map_c_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Sparse mapping between FS values [0:8:64] and a4 blending factor for Chroma.
    /// Default Value: 0,24,49,73,98,123,147,172,197
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_to_a4_map_c_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_to_a4_map_c - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,24,49,73,98,123,147,172,197
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_to_a4_map_c[9];
    } fs_to_a4_map_c_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dither_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to apply dithering to Y channel of final TF output.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       dither_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dither_cb
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to apply dithering to Cb channel of final TF output.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       dither_cb;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dither_cr
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to apply dithering to Cr channel of final TF output.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       dither_cr;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_lut_y_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   The LUT of scale factors to be applied to Luma noise thresholds (this LUT is accessed by normalized
    ///                distance to optical center).
    /// Default Value: 128
    /// Range:         [0, 511]
    /// Bit Depth:     9u, Q7
    /// Length:        16
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct lnr_lut_y_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// lnr_lut_y - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 128
        /// Length:        16
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT lnr_lut_y[16];
    } lnr_lut_y_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_lut_c_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   The LUT of scale factors to be applied to Chroma noise thresholds (this LUT is accessed by normalized
    ///                distance to optical center).
    /// Default Value: 128
    /// Range:         [0, 511]
    /// Bit Depth:     9u, Q7
    /// Length:        16
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct lnr_lut_c_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// lnr_lut_c - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 128
        /// Length:        16
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT lnr_lut_c[16];
    } lnr_lut_c_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_opt_center_x
    ///
    /// Tuning Level:  often_tune
    /// Description:   Optical center coordinate (Q15) in virtual coordinate system of [0,1]x[0,1].
    /// Default Value: 8192
    /// Range:         [0, 16384]
    /// Bit Depth:     15u, Q14
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       lnr_opt_center_x;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_opt_center_y
    ///
    /// Tuning Level:  often_tune
    /// Description:   Optical center coordinate (Q15) in virtual coordinate system of [0,1]x[0,1].
    /// Default Value: 8192
    /// Range:         [0, 16384]
    /// Bit Depth:     15u, Q14
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       lnr_opt_center_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_ellipses_bounding_rect_w
    ///
    /// Tuning Level:  often_tune
    /// Description:   Defines the minimal bounding rectangle of LNR geometry (in virtual coordinate system of [0,1]x[0,1]). LNR
    ///                gains are defined on uniformly sampled ellipses around the optical center, with lnr_ellipse_bounding_rect
    ///                being the minimal bounding rectangle of the biggest ellipse. CONSTRAINT: the whole [0,1]x[0,1] image
    ///                should be fully contained in the rectangle twice bigger than lnr_ellipse_bounding_rect.
    /// Default Value: 16384
    /// Range:         [8192, 65535]
    /// Bit Depth:     16u, Q14
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       lnr_ellipses_bounding_rect_w;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lnr_ellipses_bounding_rect_h
    ///
    /// Tuning Level:  often_tune
    /// Description:   Defines the minimal bounding rectangle of LNR geometry (in virtual coordinate system of [0,1]x[0,1]). LNR
    ///                gains are defined on uniformly sampled ellipses around the optical center, with lnr_ellipse_bounding_rect
    ///                being the minimal bounding rectangle of the biggest ellipse. CONSTRAINT: the whole [0,1]x[0,1] image
    ///                should be fully contained in the rectangle twice bigger than lnr_ellipse_bounding_rect.
    /// Default Value: 16384
    /// Range:         [8192, 65535]
    /// Bit Depth:     16u, Q14
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       lnr_ellipses_bounding_rect_h;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_y_c1_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Multiplication factor used in Luma thresholds calculation to form weak threshold (multiplies basic noise
    ///                threshold).
    /// Default Value: 0,2,4,6,8,10,12,14,16
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_y_c1_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_y_c1 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,2,4,6,8,10,12,14,16
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_y_c1[9];
    } fs_decision_params_y_c1_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_y_c2_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Luma thresholds calculation to form weak threshold.
    /// Default Value: 0,0,0,0,0,0,0,0,0
    /// Range:         [0, 8191]
    /// Bit Depth:     13u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_y_c2_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_y_c2 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,0,0,0,0,0,0,0,0
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_y_c2[9];
    } fs_decision_params_y_c2_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_y_c3_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Multiplication factor used in Luma thresholds calculation to form strong threshold (multiplies basic
    ///                noise threshold).
    /// Default Value: 0,3,7,11,15,19,23,27,31
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_y_c3_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_y_c3 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,3,7,11,15,19,23,27,31
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_y_c3[9];
    } fs_decision_params_y_c3_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_y_c4_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Luma thresholds calculation to form strong threshold .
    /// Default Value: 64,64,64,64,64,64,64,64,64
    /// Range:         [0, 16383]
    /// Bit Depth:     14u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_y_c4_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_y_c4 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 64,64,64,64,64,64,64,64,64
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_y_c4[9];
    } fs_decision_params_y_c4_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_y_c1
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used in Luma thresholds calculation to form weak threshold (multiplies basic noise
    ///                threshold). Used in case of out-of-frame Luma pixel.
    /// Default Value: 1
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_y_c1;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_y_c2
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Luma thresholds calculation to form weak threshold. Used in case of out-of-frame Luma
    ///                pixel.
    /// Default Value: 0
    /// Range:         [0, 8191]
    /// Bit Depth:     13u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_y_c2;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_y_c3
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used in Luma thresholds calculation to form strong threshold (multiplies basic
    ///                noise threshold). Used in case of out-of-frame Luma pixel.
    /// Default Value: 4
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_y_c3;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_y_c4
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Luma thresholds calculation to form strong threshold. Used in case of out-of-frame Luma
    ///                pixel.
    /// Default Value: 16
    /// Range:         [0, 16383]
    /// Bit Depth:     14u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_y_c4;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_c_c1_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Multiplication factor used in Chroma thresholds calculation to form weak threshold (multiplies basic
    ///                noise threshold) .
    /// Default Value: 0,2,4,6,8,10,12,14,16
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_c_c1_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_c_c1 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,2,4,6,8,10,12,14,16
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_c_c1[9];
    } fs_decision_params_c_c1_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_c_c2_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Chroma thresholds calculation to form weak threshold.
    /// Default Value: 0,0,0,0,0,0,0,0,0
    /// Range:         [0, 8191]
    /// Bit Depth:     13u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_c_c2_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_c_c2 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,0,0,0,0,0,0,0,0
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_c_c2[9];
    } fs_decision_params_c_c2_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_c_c3_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Multiplication factor used in Chroma thresholds calculation to form strong threshold (multiplies basic
    ///                noise threshold).
    /// Default Value: 0,3,7,11,15,19,23,27,31
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_c_c3_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_c_c3 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 0,3,7,11,15,19,23,27,31
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_c_c3[9];
    } fs_decision_params_c_c3_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_c_c4_tab
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Chroma thresholds calculation to form strong threshold.
    /// Default Value: 64,64,64,64,64,64,64,64,64
    /// Range:         [0, 16383]
    /// Bit Depth:     14u, Q4
    /// Length:        9
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct fs_decision_params_c_c4_tabStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// fs_decision_params_c_c4 - Array
        ///
        /// Tuning Level:  often_tune
        /// Default Value: 64,64,64,64,64,64,64,64,64
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        FLOAT fs_decision_params_c_c4[9];
    } fs_decision_params_c_c4_tab;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_c_c1
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used in Chroma thresholds calculation to form weak threshold (multiplies basic
    ///                noise threshold). Used in case of out-of-frame Luma pixel.
    /// Default Value: 1
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_c_c1;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_c_c2
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Chroma thresholds calculation to form weak threshold. Used in case of out-of-frame Luma
    ///                pixel.
    /// Default Value: 0
    /// Range:         [0, 8191]
    /// Bit Depth:     13u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_c_c2;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_c_c3
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used in Chroma thresholds calculation to form strong threshold (multiplies basic
    ///                noise threshold). Used in case of out-of-frame Luma pixel.
    /// Default Value: 4
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_c_c3;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// fs_decision_params_oof_c_c4
    ///
    /// Tuning Level:  often_tune
    /// Description:   Offset used in Chroma thresholds calculation to form strong threshold. Used in case of out-of-frame Luma
    ///                pixel.
    /// Default Value: 16
    /// Range:         [0, 16383]
    /// Bit Depth:     14u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       fs_decision_params_oof_c_c4;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// apply_fs_rank_filter
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to apply peak removal on the FS image (i.e. on the result of FS decision).
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       apply_fs_rank_filter;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// apply_fs_lpf
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to apply low pass filter on the FS image (i.e. on the result of FS decision).
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       apply_fs_lpf;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// sad_y_calc_mode
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Window size for SAD Y calculation. 0 = 7x5 window, 1 = 5x5 window, 2 = 3x3 window, 3 = 1x1 window.
    /// Default Value: 0
    /// Range:         [0, 3]
    /// Bit Depth:     2u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       sad_y_calc_mode;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// sad_c_calc_mode
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Window size for SAD Cb and Cr calculations. 0 = 3x3 window, 1 = 5x3 window.
    /// Default Value: 1
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       sad_c_calc_mode;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// use_indications
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to use indications from lower resolutions (should be 0 for lowest resolution pass where there is
    ///                no indications input).
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear Ceil Interpolation: Do Linear Interpolation and then Ceil.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       use_indications;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// indications_affect_fs_decision_also_directly
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   When this flag is 1, indications affect FS decision also directly, by taking minimum of normal FS
    ///                decision (i.e. at current resolution). and the indications value converted to 6 bits (i.e. from lower
    ///                resolution; for out of frame pixels the indication value is clipped to out_of_frame_pixels_confidence
    ///                before conversion). Evidently, in this mode, if ghost detection is disabled (by setting both
    ///                disable_luma_ghost_detection and disable_chroma_ghost_detection to 1), normal FS decisions are ignored
    ///                and only indications affect the FS decision. CONSTRAINT: Can be 1 only when use_indications is 1.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear Ceil Interpolation: Do Linear Interpolation and then Ceil.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       indications_affect_fs_decision_also_directly;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// morph_erode_size
    ///
    /// Tuning Level:  often_tune
    /// Description:   0 = functional bypass (no filter), 1 = 5x5 window, 2 = 3x3 window.
    /// Default Value: 1
    /// Range:         [0, 2]
    /// Bit Depth:     2u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       morph_erode_size;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// morph_dilate_size
    ///
    /// Tuning Level:  often_tune
    /// Description:   0 = functional bypass (no filter), 1 = 5x5 window, 2 = 3x3 window.
    /// Default Value: 2
    /// Range:         [0, 2]
    /// Bit Depth:     2u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       morph_dilate_size;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_enable
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether to enable warping transform refinement.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_enable;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_block_num_x
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   refinement grid: number of columns (1...10).
    /// Default Value: 4
    /// Range:         [1, 10]
    /// Bit Depth:     4u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_block_num_x;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_block_num_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   refinement grid: number of rows (1...31).
    /// Default Value: 4
    /// Range:         [1, 31]
    /// Bit Depth:     5u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_block_num_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_fs_threshold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Minimal FS to contribute to transform refinement.
    /// Default Value: 60
    /// Range:         [0, 63]
    /// Bit Depth:     6u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_fs_threshold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_dead_zone
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Dead-zone for transform refinement results. 0 is equivalent to no dead-zone.
    /// Default Value: 0
    /// Range:         [0, 3]
    /// Bit Depth:     2u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_dead_zone;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tr_count_percentage_threshold
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Minimal percentage of good samples in a block to make its refinement valid.
    /// Default Value: 50
    /// Range:         [0, 100]
    /// Bit Depth:     7u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       tr_count_percentage_threshold;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// out_of_frame_pixels_confidence
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   When indications_affect_fs_decision_also_directly is 1, this value is used to update the indications in
    ///                out of frame regions (i.e. pixels going out of frame during global motion compensation) - as upper limit
    ///                .
    /// Default Value: 8
    /// Range:         [0, 15]
    /// Bit Depth:     4u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       out_of_frame_pixels_confidence;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// is_dci_mode
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Whether TF is working in DCI mode -- in this mode fs_to_a4_maps are not used.
    /// Default Value: 0
    /// Range:         [0, 1]
    /// Bit Depth:     1u
    /// Conversion:    No Conversion needed
    /// Notes:         Nearest neighbor interpolation: discrete values allowed.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       is_dci_mode;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t1_scale_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used for determining weak Luma threshold for a3 (based on weak decision threshold
    ///                for FS).
    /// Default Value: 15
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t1_scale_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t1_offs_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Offset used for determining weak Luma threshold for a3 (based on weak decision threshold for FS).
    /// Default Value: 0
    /// Range:         [0, 1023]
    /// Bit Depth:     10u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t1_offs_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t2_scale_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used for determining strong Luma threshold for a3 (based on strong decision
    ///                threshold for FS).
    /// Default Value: 28
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t2_scale_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t2_offs_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Offset used for determining strong Luma threshold for a3 (based on strong decision threshold for FS).
    /// Default Value: 0
    /// Range:         [0, 4095]
    /// Bit Depth:     12u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t2_offs_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t1_scale_c
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used for determining weak Chroma threshold for a3 (based on weak decision threshold
    ///                for FS).
    /// Default Value: 15
    /// Range:         [0, 31]
    /// Bit Depth:     5u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t1_scale_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t1_offs_c
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Offset used for determining weak Chroma threshold for a3 (based on weak decision threshold for FS).
    /// Default Value: 0
    /// Range:         [0, 1023]
    /// Bit Depth:     10u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t1_offs_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t2_scale_c
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Multiplication factor used for determining strong Chroma threshold for a3 (based on strong decision
    ///                threshold for FS).
    /// Default Value: 28
    /// Range:         [0, 63]
    /// Bit Depth:     6u, Q4
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t2_scale_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// a3_t2_offs_c
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Offset used for determining strong Chroma threshold for a3 (based on strong decision threshold for FS).
    /// Default Value: 0
    /// Range:         [0, 4095]
    /// Bit Depth:     12u, Q5
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       a3_t2_offs_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// constant_blending_factor_y
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Blending factor for Luma channel in case of constant blending mode.
    /// Default Value: 128
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       constant_blending_factor_y;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// constant_blending_factor_c
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Blending factor for Chroma channels in case of constant blending mode.
    /// Default Value: 128
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       constant_blending_factor_c;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// video_first_frame_spatial_nr_percentage
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   In video flow, in first frame: the spatial NR is configured somewhere between a2_max and a2_min. This
    ///                parameter defines the linearly increasing percentage: 0 =is greater than a2_min, 100 =is greater than
    ///                a2_max.
    /// Default Value: 50
    /// Range:         [0, 100]
    /// Bit Depth:     7u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       video_first_frame_spatial_nr_percentage;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// scene_cut_recovery_time
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Affects the algorithm of faster convergence in case of scene cut. When detectable scene-cut (e.g.
    ///                exposure change) happens, TF will usually significantly decrease temporal filtering. In such case
    ///                temporal weights should be kept small for some time to allow faster temporal noise convergence. This
    ///                parameter defines the allowed period in which the temporal weights should return to normal weights. When
    ///                0 - scene cut recovery is disabled. When 128 - default algorithm behavior is used. When 255 - slowest
    ///                recovery (according to the algorithm) will be used.
    /// Default Value: 128
    /// Range:         [0, 255]
    /// Bit Depth:     8u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       scene_cut_recovery_time;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_luma_min_strength_high_freq
    ///
    /// Tuning Level:  must_tune
    /// Description:   Controls adaptive blending of ANR output with ANR input for High Frequencies of Luma (see description of
    ///                anr_final_blender_strength_decision_ythr_low parameter for details). Effective strength = 0 means taking
    ///                only ANR input. Effective strength = 256 means taking only ANR output.
    /// Default Value: 256
    /// Range:         [0, 256]
    /// Bit Depth:     9u, Q8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_luma_min_strength_high_freq;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_luma_min_strength_low_freq
    ///
    /// Tuning Level:  often_tune
    /// Description:   Controls adaptive blending of ANR output with ANR input for Low Frequencies of Luma (see description of
    ///                anr_final_blender_strength_decision_ythr_low parameter for details). Effective strength = 0 means taking
    ///                only ANR input. Effective strength = 256 means taking only ANR output.
    /// Default Value: 256
    /// Range:         [0, 256]
    /// Bit Depth:     9u, Q8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_luma_min_strength_low_freq;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_chroma_min_strength_high_freq
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Controls adaptive blending of ANR output with ANR input for High Frequencies of Chroma (see description
    ///                of anr_final_blender_strength_decision_ythr_low parameter for details). Effective strength = 0 means
    ///                taking only ANR input. Effective strength = 256 means taking only ANR output.
    /// Default Value: 256
    /// Range:         [0, 256]
    /// Bit Depth:     9u, Q8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_chroma_min_strength_high_freq;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_chroma_min_strength_low_freq
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Controls adaptive blending of ANR output with ANR input for Low Frequencies of Chroma (see description of
    ///                anr_final_blender_strength_decision_ythr_low parameter for details). Effective strength = 0 means taking
    ///                only ANR input. Effective strength = 256 means taking only ANR output.
    /// Default Value: 256
    /// Range:         [0, 256]
    /// Bit Depth:     9u, Q8
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_chroma_min_strength_low_freq;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_strength_decision_ythr_low
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   Strength decision is based on dissimilarity decision between ANR input and ANR output. Similar pixels
    ///                will get strength=0, dissimilar pixels will get strength = 256; in-between, linear interpolation is used.
    ///                Similarity is calculated as min(Similarity_Y, Similarity_Cb, Similarity_Cr). If ABS(ANR_Y_IN-ANR_Y_OUT)
    ///                is less than anr_final_blender_strength_decision_ythr_low, then Similarity_Y = max;. if
    ///                ABS(ANR_Y_IN-ANR_Y_OUT) is greater or equal than anr_final_blender_strength_decision_ythr_high, then
    ///                Similarity_Y = min;. otherwise, linear interpolation is used. And similarly for Cb and Cr (using cthr
    ///                values): e.g. if ABS(ANR_Cb_IN-ANR_Cb_OUT) is less than anr_final_blender_strength_decision_cthr_low,
    ///                then Similarity_Cb = max;. if ABS(ANR_Cb_IN-ANR_Cb_OUT) is greater or equal than
    ///                anr_final_blender_strength_decision_cthr_high, then Similarity_Cb = min;. otherwise, linear interpolation
    ///                is used. This feature is designed to prevent peak noises back to the final image.
    /// Default Value: 20
    /// Range:         [0, 511]
    /// Bit Depth:     9u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_strength_decision_ythr_low;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_strength_decision_ythr_high
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   see description of anr_final_blender_strength_decision_ythr_low parameter.
    /// Default Value: 307
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_strength_decision_ythr_high;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_strength_decision_cthr_low
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   see description of anr_final_blender_strength_decision_ythr_low parameter.
    /// Default Value: 511
    /// Range:         [0, 511]
    /// Bit Depth:     9u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_strength_decision_cthr_low;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// anr_final_blender_strength_decision_cthr_high
    ///
    /// Tuning Level:  rarely_tune
    /// Description:   see description of anr_final_blender_strength_decision_ythr_low parameter.
    /// Default Value: 1023
    /// Range:         [0, 1023]
    /// Bit Depth:     10u
    /// Conversion:    No Conversion needed
    /// Notes:         Linear interpolation.
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    FLOAT                       anr_final_blender_strength_decision_cthr_high;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_pass_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_pass_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// pass_trigger
    ///
    /// Default Value: PASS_FULL,PASS_DC4,PASS_DC16,PASS_DC64
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pass      pass_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// tf10_rgn_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    tf10_rgn_dataType tf10_rgn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_cct_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_cct_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// cct_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type cct_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// cct_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct cct_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_pass_data - Array
        /// Length:        4
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        mod_tf10_pass_dataType mod_tf10_pass_data[4];
    } cct_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    globalelements::trigger_pt_type_aec aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_cct_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                 mod_tf10_cct_dataCount;
        UINT32                 mod_tf10_cct_dataID;
        mod_tf10_cct_dataType* mod_tf10_cct_data;
    } aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_hdr_aec_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_hdr_aec_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type_aec_hdr hdr_aec_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// hdr_aec_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct hdr_aec_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                 mod_tf10_aec_dataCount;
        UINT32                 mod_tf10_aec_dataID;
        mod_tf10_aec_dataType* mod_tf10_aec_data;
    } hdr_aec_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_drc_gain_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_drc_gain_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type drc_gain_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// drc_gain_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct drc_gain_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_hdr_aec_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                     mod_tf10_hdr_aec_dataCount;
        UINT32                     mod_tf10_hdr_aec_dataID;
        mod_tf10_hdr_aec_dataType* mod_tf10_hdr_aec_data;
    } drc_gain_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_pre_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_pre_scale_ratio_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// pre_scale_ratio_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type      pre_scale_ratio_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// pre_scale_ratio_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct pre_scale_ratio_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_drc_gain_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                      mod_tf10_drc_gain_dataCount;
        UINT32                      mod_tf10_drc_gain_dataID;
        mod_tf10_drc_gain_dataType* mod_tf10_drc_gain_data;
    } pre_scale_ratio_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_post_scale_ratio_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_post_scale_ratio_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// post_scale_ratio_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type       post_scale_ratio_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// post_scale_ratio_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct post_scale_ratio_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_pre_scale_ratio_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                             mod_tf10_pre_scale_ratio_dataCount;
        UINT32                             mod_tf10_pre_scale_ratio_dataID;
        mod_tf10_pre_scale_ratio_dataType* mod_tf10_pre_scale_ratio_data;
    } post_scale_ratio_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_lens_zoom_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_lens_zoom_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_zoom_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type lens_zoom_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_zoom_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct lens_zoom_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_post_scale_ratio_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                              mod_tf10_post_scale_ratio_dataCount;
        UINT32                              mod_tf10_post_scale_ratio_dataID;
        mod_tf10_post_scale_ratio_dataType* mod_tf10_post_scale_ratio_data;
    } lens_zoom_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// mod_tf10_lens_posn_dataType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct mod_tf10_lens_posn_dataType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_posn_trigger
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ispglobalelements::trigger_pt_type lens_posn_trigger;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// lens_posn_data
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct lens_posn_dataStruct
    {

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// mod_tf10_lens_zoom_data - Array
        /// Min Length:    1
        /// Max Length:    Unbounded
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32                       mod_tf10_lens_zoom_dataCount;
        UINT32                       mod_tf10_lens_zoom_dataID;
        mod_tf10_lens_zoom_dataType* mod_tf10_lens_zoom_data;
    } lens_posn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_tf10_coreType
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_tf10_coreType
{

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// mod_tf10_lens_posn_data - Array
    /// Min Length:    1
    /// Max Length:    Unbounded
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32                       mod_tf10_lens_posn_dataCount;
    UINT32                       mod_tf10_lens_posn_dataID;
    mod_tf10_lens_posn_dataType* mod_tf10_lens_posn_data;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_tf10Type
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
struct chromatix_tf10Type
{
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Binary file symbol table entry ID
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    UINT32 SymbolTableID;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// enable_section
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct enable_sectionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        globalelements::enable_flag_type master_en;
    } enable_section;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// module_version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct module_versionStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;
        INT32 major_revision;
        INT32 minor_revision;
        INT32 incr_revision;
    } module_version;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_variables
    ///
    /// Default Value: control_lens_position, control_lens_zoom, control_post_scale_ratio, control_pre_scale_ratio, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain, control_cct, control_pass
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_variablesStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// control_var_type - Array
        /// Default Value: control_lens_position, control_lens_zoom, control_post_scale_ratio, control_pre_scale_ratio, control_drc_gain, control_aec_exp_sensitivity_ratio, control_gain, control_cct, control_pass
        /// Length:        9
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        enum class control_var_typeEnum
        {
            control_lens_position             = 0,
            control_lens_zoom                 = 1,
            control_post_scale_ratio          = 2,
            control_pre_scale_ratio           = 3,
            control_drc_gain                  = 4,
            control_exp_time_ratio            = 5,
            control_aec_exp_sensitivity_ratio = 6,
            control_lux_idx                   = 7,
            control_gain                      = 8,
            control_cct                       = 9,
            control_pass                      = 10
        } control_var_type[9];
    } control_variables;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// control_method
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct control_methodStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_exp_control
        /// Default Value: control_gain
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_type     aec_exp_control;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// aec_hdr_control
        /// Default Value: control_aec_exp_sensitivity_ratio
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ispglobalelements::tuning_control_aec_hdr_type aec_hdr_control;
    } control_method;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// dynamic_enable_triggers
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    struct dynamic_enable_triggersStruct
    {
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// Binary file symbol table entry ID
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        UINT32 SymbolTableID;

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        /// master_en
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        struct master_enStruct
        {
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// Binary file symbol table entry ID
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            UINT32 SymbolTableID;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// enable
            ///
            /// Tuning Level:  must_tune
            /// Description:   Master enable of TF module. When this variable is 0, all passes are disabled irrespective of en
            ///                parameters. When this variable is 1, the enable of each pass is controlled by its en parameter.
            /// Default Value: 0
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            globalelements::enable_flag_type        enable;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_control_var
            ///
            /// Tuning Level:  must_tune
            /// Description:   Master enable of TF module.
            /// Default Value: control_gain
            /// Range:         [0, 1]
            /// Bit Depth:     1u
            /// Length:        0
            /// Notes:         none
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::control_var_type        hyst_control_var;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_mode
            /// Default Value: UPWARD
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::hyst_direction          hyst_mode;

            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            /// hyst_trigger
            ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
            ispglobalelements::trigger_pt_couplet_type hyst_trigger;
        } master_en;
    } dynamic_enable_triggers;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_tf10_reserve
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_tf10_reserveType chromatix_tf10_reserve;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// chromatix_tf10_core
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_tf10_coreType    chromatix_tf10_core;
};

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// chromatix_tf10TypeClass
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
class chromatix_tf10TypeClass : public ParameterModule, public chromatix_tf10Type
{
public:
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Version
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const UINT16 MAJOR = 1;
    static const UINT16 MINOR = 0;
    static const UINT32 PATCH = 0;

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Default Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_tf10TypeClass(
        const CHAR* name);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Constructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    chromatix_tf10TypeClass(
        const CHAR* name,
        UINT32 modeId,
        UINT16 mode,
        UINT16 subMode,
        UINT32 group);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Destructor
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ~chromatix_tf10TypeClass();

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// GetName
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static const CHAR* GetName(
        const CHAR* type);


    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_pass_reserve_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_pass_reserve_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_pass_reserve_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_pass_reserve_dataType_pass_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_pass_reserve_dataType_pass_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_pass_reserve_dataType::pass_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_tf10_reserveType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_tf10_reserveType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10_reserveType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_y_ytb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_y_ytb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_y_ytb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_y_ctb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_y_ctb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_y_ctb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_cb_ytb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_cb_ytb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_cb_ytb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_cb_ctb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_cb_ctb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_cb_ctb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_cr_ytb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_cr_ytb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_cr_ytb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_noise_params_cr_ctb_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_noise_params_cr_ctb_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::noise_params_cr_ctb_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_to_a1_map_y_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_to_a1_map_y_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_to_a1_map_y_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_to_a1_map_c_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_to_a1_map_c_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_to_a1_map_c_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_to_a4_map_y_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_to_a4_map_y_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_to_a4_map_y_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_to_a4_map_c_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_to_a4_map_c_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_to_a4_map_c_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_lnr_lut_y_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_lnr_lut_y_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::lnr_lut_y_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_lnr_lut_c_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_lnr_lut_c_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::lnr_lut_c_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_y_c1_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_y_c1_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_y_c1_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_y_c2_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_y_c2_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_y_c2_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_y_c3_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_y_c3_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_y_c3_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_y_c4_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_y_c4_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_y_c4_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_c_c1_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_c_c1_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_c_c1_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_c_c2_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_c_c2_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_c_c2_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_c_c3_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_c_c3_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_c_c3_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load tf10_rgn_dataType_fs_decision_params_c_c4_tabStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadtf10_rgn_dataType_fs_decision_params_c_c4_tabStruct(
        ParameterFileSymbolTableEntry* entry,
        tf10_rgn_dataType::fs_decision_params_c_c4_tabStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_pass_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_pass_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_pass_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_cct_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_cct_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_cct_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_cct_dataType_cct_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_cct_dataType_cct_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_cct_dataType::cct_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_aec_dataType_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_hdr_aec_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_drc_gain_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_pre_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_pre_scale_ratio_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_pre_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_post_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_post_scale_ratio_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_post_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_post_scale_ratio_dataType::post_scale_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_lens_zoom_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_lens_zoom_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_lens_zoom_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_lens_zoom_dataType_lens_zoom_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_lens_zoom_dataType::lens_zoom_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_lens_posn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_lens_posn_dataType(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_lens_posn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load mod_tf10_lens_posn_dataType_lens_posn_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(
        ParameterFileSymbolTableEntry* entry,
        mod_tf10_lens_posn_dataType::lens_posn_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_tf10_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_tf10_coreType(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load chromatix_tf10Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadchromatix_tf10Type(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load enable_sectionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadenable_sectionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::enable_sectionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load module_versionStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadmodule_versionStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::module_versionStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_variablesStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_variablesStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::control_variablesStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load control_methodStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loadcontrol_methodStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::control_methodStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::dynamic_enable_triggersStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Load dynamic_enable_triggersStruct_master_enStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static BOOL Loaddynamic_enable_triggersStruct_master_enStruct(
        ParameterFileSymbolTableEntry* entry,
        chromatix_tf10Type::dynamic_enable_triggersStruct::master_enStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_aec_dataType(
        mod_tf10_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_aec_dataType_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_aec_dataType_aec_dataStruct(
        mod_tf10_aec_dataType::aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_hdr_aec_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_hdr_aec_dataType(
        mod_tf10_hdr_aec_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_hdr_aec_dataType_hdr_aec_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_hdr_aec_dataType_hdr_aec_dataStruct(
        mod_tf10_hdr_aec_dataType::hdr_aec_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_drc_gain_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_drc_gain_dataType(
        mod_tf10_drc_gain_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_drc_gain_dataType_drc_gain_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_drc_gain_dataType_drc_gain_dataStruct(
        mod_tf10_drc_gain_dataType::drc_gain_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_pre_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_pre_scale_ratio_dataType(
        mod_tf10_pre_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_pre_scale_ratio_dataType_pre_scale_ratio_dataStruct(
        mod_tf10_pre_scale_ratio_dataType::pre_scale_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_post_scale_ratio_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_post_scale_ratio_dataType(
        mod_tf10_post_scale_ratio_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_post_scale_ratio_dataType_post_scale_ratio_dataStruct(
        mod_tf10_post_scale_ratio_dataType::post_scale_ratio_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_lens_zoom_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_lens_zoom_dataType(
        mod_tf10_lens_zoom_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_lens_zoom_dataType_lens_zoom_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_lens_zoom_dataType_lens_zoom_dataStruct(
        mod_tf10_lens_zoom_dataType::lens_zoom_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_lens_posn_dataType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_lens_posn_dataType(
        mod_tf10_lens_posn_dataType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload mod_tf10_lens_posn_dataType_lens_posn_dataStruct
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadmod_tf10_lens_posn_dataType_lens_posn_dataStruct(
        mod_tf10_lens_posn_dataType::lens_posn_dataStruct* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_tf10_coreType
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_tf10_coreType(
        chromatix_tf10_coreType* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Unload chromatix_tf10Type
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    static void Unloadchromatix_tf10Type(
        chromatix_tf10Type* structure);

    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /// Parse symbol table entry, and return a new object
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    virtual ParameterModule* Parse(
        ParameterSetManager* manager,
        ParameterFileSymbolTableEntry* entry) const;

}; // End class chromatix_tf10TypeClass

TF_1_0_0_NAMESPACE_END
#endif // TF_1_0_0_H

